package com.rm.wechatapp.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.rm.wechatapp.entity.OnQuestion;
import com.rm.wechatapp.entity.VO.QuestionVO;

import java.util.List;

/**
 * 题目Service接口
 * 
 * @author sh
 * @date 2025-03-25
 */
public interface IOnQuestionService extends IService<OnQuestion>
{
    /**
     * 查询题目
     * 
     * @param id 题目主键
     * @return 题目
     */
    public OnQuestion selectById(Long id);

    /**
     * 查询题目列表
     * 
     * @param onQuestion 题目
     * @return 题目集合
     */
    public List<OnQuestion> selectList(OnQuestion onQuestion);

    /**
     * 新增题目
     * 
     * @param onQuestion 题目
     * @return 结果
     */
    public int insert(OnQuestion onQuestion);

    /**
     * 修改题目
     * 
     * @param onQuestion 题目
     * @return 结果
     */
    public int update(OnQuestion onQuestion);

    /**
     * 批量删除题目
     * 
     * @param ids 需要删除的题目主键集合
     * @return 结果
     */
    public int deleteByIds(String ids);

    /**
     * 删除题目信息
     * 
     * @param id 题目主键
     * @return 结果
     */
    public int deleteById(Long id);

    /**
     * 新增题目+记录日志
     *
     * @param onQuestion 题目
     * @return 结果
     */
    public int insertAndLog(OnQuestion onQuestion);

    /**
     * 修改题目+记录日志
     *
     * @param onQuestion 题目
     * @return 结果
     */
    public int updateAndLog(OnQuestion onQuestion);

    /**
     * 批量删除题目+记录日志
     *
     * @param ids 需要删除的题目主键集合
     * @return 结果
     */
    public int deleteByIdsAndLog(String ids);

    /**
     * 删除题目信息+记录日志
     *
     * @param id 题目主键
     * @return 结果
     */
    public int deleteByIdAndLog(Long id);

    /**
     * 获取微信小程序需要的题目列表
     *
     * @param ownerId
     * @return
     */
    public List<QuestionVO> selectByOwnerIdToVO(Long ownerId);

    /**
     * 根据所属题库ID查询题目
     *
     * @param ownerId 所属题库ID
     * @return 题库信息集合
     */
    public List<OnQuestion> selectByOwnerId(Long ownerId);

    /**
     * 获取模拟考试100道题目
     *
     * @return 模拟考试题目
     */
    List<QuestionVO> selectMockExam();
}
